import request from './request'

// 数据生成相关API
export const dataGeneratorAPI = {
  // 生成测试数据
  generateData(params) {
    return request({
      url: '/data/generate',
      method: 'post',
      data: params
    })
  },

  // 获取生成进度
  getGenerationProgress(taskId) {
    return request({
      url: `/data/progress/${taskId}`,
      method: 'get'
    })
  },

  // 下载生成的数据文件
  downloadData(taskId) {
    return request({
      url: `/data/download/${taskId}`,
      method: 'get',
      responseType: 'blob'
    })
  },

  // 获取历史记录
  getHistory(params = {}) {
    return request({
      url: '/data/history',
      method: 'get',
      params
    })
  },

  // 删除历史记录
  deleteHistory(id) {
    return request({
      url: `/data/history/${id}`,
      method: 'delete'
    })
  },

  // 上传SQL文件解析表结构
  uploadSQLFile(file) {
    const formData = new FormData()
    formData.append('file', file)
    return request({
      url: '/data/parse-sql',
      method: 'post',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
  },

  // 验证字段配置
  validateFieldConfig(fields) {
    return request({
      url: '/data/validate-fields',
      method: 'post',
      data: { fields }
    })
  }
}

// 用户认证相关API
export const authAPI = {
  // 用户登录
  login(credentials) {
    return request({
      url: '/auth/login',
      method: 'post',
      data: credentials
    })
  },

  // 用户登出
  logout() {
    return request({
      url: '/auth/logout',
      method: 'post'
    })
  },

  // 获取用户信息
  getUserInfo() {
    return request({
      url: '/auth/user',
      method: 'get'
    })
  },

  // 刷新token
  refreshToken() {
    return request({
      url: '/auth/refresh',
      method: 'post'
    })
  }
}

// 配置相关API
export const configAPI = {
  // 获取数据类型选项
  getDataTypes() {
    return request({
      url: '/config/data-types',
      method: 'get'
    })
  },

  // 获取生成规则选项
  getGenerationRules(dataType) {
    return request({
      url: '/config/generation-rules',
      method: 'get',
      params: { dataType }
    })
  },

  // 获取用户配额信息
  getUserQuota() {
    return request({
      url: '/config/user-quota',
      method: 'get'
    })
  }
}

// 统计相关API
export const statisticsAPI = {
  // 获取使用统计
  getUsageStatistics(timeRange = '7d') {
    return request({
      url: '/statistics/usage',
      method: 'get',
      params: { timeRange }
    })
  },

  // 获取生成记录统计
  getGenerationStatistics() {
    return request({
      url: '/statistics/generation',
      method: 'get'
    })
  }
}